<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 函数tag依次会接收到多个参数。
        function tag(stringArr, value1, value2) {
            // ...
        }

        // 等同于

        function tag(stringArr, ...values) {
            // ...
        }
        // tag函数的第一个参数是一个数组，该数组的成员是模板字符串中那些没有变量替换的部分，也就是说，变量替换只发生在数组的第一个成员与第二个成员之间、第二个成员与第三个成员之间，以此类推。
        // tag函数的其他参数，都是模板字符串各个变量被替换后的值。由于本例中，模板字符串含有两个变量，因此tag会接受到value1和value2两个参数。
        // tag函数的其他参数，都是模板字符串各个变量被替换后的值。由于本例中，模板字符串含有两个变量，因此tag会接受到value1和value2两个参数。
        //tag函数所有参数的实际值如下。

        // 第一个参数：['Hello ', ' world ', '']
        // 第二个参数: 15
        // 第三个参数：50
        // 也就是说，tag函数实际上以下面的形式调用。

        // 也就是说，tag函数实际上以下面的形式调用。
        tag(['Hello ', ' world ', ''], 15, 50)
        
    </script>
</body>

</html>